<?php

/**
 * 命名空间自动加载类
 * @author WispX
 * @date 2017/11/15 13:45
 * @link http://gitee.com/wispx
 * @version 1.0
 */

class AutoLoad
{

    /**
     * 注册自动加载
     * @param null $prepend
     */
    public static function register($prepend = null)
    {
        spl_autoload_register($prepend ? $prepend : "\\AutoLoad::loadClass");
    }

    /**
     * 加载类
     * @param $class
     */
    public static function loadClass($class)
    {
        $file = self::findFile($class);
        file_exists($file) && require_once $file;
    }

    /**
     * 拼装文件地址
     * @param $class
     * @return string
     */
    private static function findFile($class)
    {
        $namespace = substr($class, 0, strpos($class, '\\'));
        $filePath = substr($class, strlen($namespace)) . '.php';
        return strtr($namespace . $filePath, '\\', DIRECTORY_SEPARATOR);
    }

}